package com.joysuch.wwyt.alert.service;

import com.joysuch.wwyt.alert.entity.NoticeWaitingTriggerList;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.Date;
import java.util.List;
import java.util.Set;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author heqifeng
 * @since 2021-07-22
 */
public interface NoticeWaitingTriggerListService extends IService<NoticeWaitingTriggerList> {
    /**
     * 获取需要通知的用户
     * @return
     */
    List<NoticeWaitingTriggerList> getNotTriggered();

    /**
     * 删除未发送的消息
     * @param taskCode
     * @return
     */
    int deleteNotTriggered(String taskCode);

    /**
     * 保存到待发送列表
     * @param userIds
     * @param title
     * @param body
     * @param businessType
     * @param taskCode
     * @return
     */
    int save(Set<Long> userIds, String title, String body, Integer businessType, String taskCode,Date sendDate);

    /**
     * 暂存在内存中，待批量插入
     * @param userIds
     * @param title
     * @param body
     * @param businessType
     * @param taskCode
     * @param sendDate
     * @param list
     * @return
     */
    boolean saveInRam(Set<Long> userIds, String title, String body,Integer businessType, String taskCode,Date sendDate, List<NoticeWaitingTriggerList> list);

    /**
     * 删除
     * @param type：业务类型
     * @param taskCode：任务编号
     * @return
     */
    boolean deleteByBusinessTypeAndTaskCode(Integer type, String taskCode);

}
